import os
from optparse import OptionParser

__all__ = ['bootstrap']


def get_options():
    parser = OptionParser()

    # 任务类型
    parser.add_option('-t', '--type', dest='task_type',
                      help='choose a task_type to run', metavar='TASK_TYPE')

    # 爬虫类型
    parser.add_option('-s', '--spider', dest='spider_name',
                      help='choose a spider to run', metavar='SPIDER')

    return parser.parse_args()


def bootstrap():
    (options, args) = get_options()

    # 获取任务类型
    if not options.task_type:
        task_type = 'spider'
    else:
        task_type = options.task_type
    os.environ['victor_spider_task_type'] = task_type

    os.environ['victor_spider_project_type'] = 'victor'

    # 启动爬虫及周边服务
    from .run_tests import run_tests
    from .run_spider import run_spider

    # 连接数据库及中间件测试
    run_tests()

    if task_type == 'spider':
        # 兼容目前的run方法
        task_type = 'run'

    # 传入任务类型及启动名，根据任务类型及启动名称启动不同爬虫
    run_spider(options.spider_name, task_type)
